package javaJob.exercise.primary.other;

import java.util.HashMap;
import java.util.Map;

/**
 * 给定一个只包括 '('，')'，'{'，'}'，'['，']' 的字符串 s ，判断字符串是否有效。
 *
 * 有效字符串需满足：
 *
 * 左括号必须用相同类型的右括号闭合。
 * 左括号必须以正确的顺序闭合。
 * 每个右括号都有一个对应的相同类型的左括号。
 *
 *w
 *
 *
 * 未完成！！！！！！！！！！！！！！！！！！！！！！！！！！！！！！！！
 */


public class primary47 {
    public static void main(String[] args) {
        String s= "()[]{}";
        String ss="{[]}";
        System.out.println(isValid(ss));
    }

    static public boolean isValid(String s) {
        boolean answer=false;
        Map<Character,Character> stringMap = new HashMap<Character, Character>();
        stringMap.put('{','}');
        stringMap.put('(',')');
        stringMap.put('[',']');
        if (s.length()%2!=0){
            return false;
        }else {
            for (int i=0;i<s.length();i++){
//                System.out.println(s.length());
                if (i+1==s.length()){
                    break;
                }else {
                    Character temp = Character.valueOf(s.charAt(i));
                    Character temp1 = Character.valueOf(s.charAt(i+1));
                    Character temp2 = Character.valueOf(s.charAt(s.length()-1-i));
                    System.out.println("i:"+i+" "+temp);
                    System.out.println("i:"+i+" "+temp1);
//                System.out.println(temp.equals('{'));
                    System.out.println("i"+i+" "+stringMap.get(temp));
                    if ((i+1)%2==1){
                        if (stringMap.get(temp)==temp1){
                            System.out.println("完成判断1");
                            answer=true;
                        }else if (stringMap.get(temp)==temp2){
                            System.out.println("完成判断2");
                            answer=true;
                        }else {
                            return false;
                        }

                    }else if ((i+1)%2==0){
                        if (stringMap.get(temp)==temp2){
                            System.out.println("完成判断3");
                            answer=true;
                        }
                        continue;
                    }else {
                        return false;
                    }
                }
            }
        }
        return answer;
    }


}
